package it.fc.action.giocatori;

import it.fc.action.FcAction;
import it.fc.bean.GiocatoriBean;
import it.fc.bean.SquadraBean;
import it.fc.service.interfaces.IDbService;

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

import com.opensymphony.xwork2.Preparable;

public class ToManageTeam extends FcAction implements Preparable {

    private static final long   serialVersionUID = -6692570174044816415L;
    private List<GiocatoriBean> giocatori        = new ArrayList<GiocatoriBean>();
    private List<GiocatoriBean> myGiocatori      = new ArrayList<GiocatoriBean>();
    private String              idSquadra        = "0";
    private String              nome;
    private String              type;

    private static Logger       log              = Logger.getLogger(ToManageTeam.class);

    @SuppressWarnings("unchecked")
    @Override
    public void prepare() throws Exception {
        IDbService dbMan = getDbService();

        List<GiocatoriBean> myTeam = dbMan.getSquadra(getIdUser(), getType());

        if (myTeam.size() <= 0) {
            setGiocatori(dbMan.getGiocatoriList(getType()));
        } else { // l'utente ha una squadra
            SquadraBean squadra = dbMan.getSquadraByUser(getIdUser());
            List<GiocatoriBean> restanti = dbMan.getGiocatoriRemaining(myTeam, getType());
            setNome(squadra.getNome());
            setGiocatori(restanti);
            setMyGiocatori(myTeam);
            setIdSquadra(String.valueOf(squadra.getIdSquadra()));
        }
        log.debug("Prepare giocatori ... found " + getGiocatori().size() + " ...");
        log.debug("Prepare MyGiocatori... found " + getMyGiocatori().size() + " ...");
    }

    public void setGiocatori(List<GiocatoriBean> giocatori) {
        this.giocatori = giocatori;
    }

    public List<GiocatoriBean> getGiocatori() {
        return giocatori;
    }

    public void setMyGiocatori(List<GiocatoriBean> myGiocatori) {
        this.myGiocatori = myGiocatori;
    }

    public List<GiocatoriBean> getMyGiocatori() {
        return myGiocatori;
    }

    public void setIdSquadra(String idSquadra) {
        this.idSquadra = idSquadra;
    }

    public String getIdSquadra() {
        return idSquadra;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getNome() {
        return nome;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

}
